home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / clue.lha / clue / doc / clue.tex / node42_mn.html < prev    next >
Text File  |  1989-07-12  |  3KB  |  73 lines

  1.  
  2. <H3><A ID="SECTION001511100000000000000">
  3. Contacts</A>
  4. </H3><#4792#>
  5.            
  6.       
  7.  
  8. In CLUE, the basis for programming the user interface of an application
  9. program is object-oriented programming --- creating objects called
  10. <#114#><B>contacts</B><#114#><A ID="115"><tex2html_anchor_invisible_mark></A> and invoking their methods.  
  11.  
  12. <P>
  13. An interactive application program can be considered to consist of a collection
  14. of functions,  some of which perform the processing that is essential
  15. to the application's purpose (e.g. text editing, knowledge base management,
  16. etc.).  Other functions exist solely for the purpose of communicating with
  17. the application's human user.  In CLUE, such human interface functions are
  18. represented by objects known as <#116#><B>contacts</B><#116#>.  Contacts are responsible for
  19. presenting application information to the user on the display screen and for
  20. informing the application of input sent by the user via interactive input
  21. devices (such as the keyboard and the pointer).  A contact generally embodies a
  22. component of the user interface that knows how to:
  23.  
  24. <UL>
  25. <LI>display its contents,
  26. </LI>
  27. <LI>process input events that are directed to it, and 
  28. </LI>
  29. <LI>report its results (if any) back to the application.
  30. </LI>
  31. </UL>
  32.  
  33. <P>
  34. A contact provides a relatively high-level abstraction for user interface
  35. programming.  The purpose of such an abstraction is twofold: 
  36.  
  37. <UL>
  38. <LI>To simplify and raise the level of the dialog between the application and
  39. the user. A contact insulates the application programmer from the detailed behavior
  40. of a user interface component (displaying its contents, acquiring its input,
  41. etc.). As an ``agent'' of the application, a contact can direct 
  42. communication with the user in terms closer to the application's domain.
  43.  
  44. <P>
  45. </LI>
  46. <LI>To define a uniform framework within which many different types of user
  47. interface objects can be combined. The contact class raises to a higher level the
  48. commonality between a great variety of interface objects --- menus, forms,
  49. dials, scroll bars, buttons, dialog boxes, text entry, etc.
  50. </LI>
  51. </UL>
  52.  
  53. <P>
  54. Because CLUE is an object-oriented programming system, it is described
  55. in terms of the proposed standard
  56. Common Lisp Object System (CLOS)<A ID="121"><tex2html_anchor_invisible_mark></A>[#clos#<tex2html_cite_mark>#1##<tex2html_cite_mark>#]. The CLUE
  57. specification thus
  58. consists primarily of a set of CLOS classes, generic functions, and methods. 
  59.  
  60. <P>
  61. The subclassing and inheritance properties of CLOS are
  62. important to the use of contacts. A contact (sub)class implements a
  63. specific interface technique (for input, output, or both) and a specific
  64. presentation style. Thus, a contact subclass
  65. can represent either an extension in technique (e.g. a hierarchical-pop-up-menu
  66. subclass of a pop-up-menu class) or a variation in style only (e.g. a
  67. drop-shadow-pop-up-menu subclass). This is expected to lead to the development
  68. of contact ``libraries'', providing a rich repertoire of interface
  69. techniques and a choice of several functionally-interchangeable styles.
  70.  
  71. <P>
  72.  
  73.  =0 <#4798#>=0 <#4802#>